#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
#include <QMovie>
#include <QString>
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    // 默认单选的选项
    ui->radioButton->setChecked(true);
    // 选择女时
    connect(ui->radioButton_2,&QRadioButton::clicked,this,[=](){
        qDebug() << "选择了女性";
    });
    // 2 选择 1 不选中
    connect(ui->checkBox,&QCheckBox::stateChanged,this,[=](int state){
        qDebug() << state << ui->checkBox_2->checkState();
    });

    // 利用listWidget 写文本
    QListWidgetItem * item = new QListWidgetItem("锄禾日当午");
    // 调节文本对齐格式
    item->setTextAlignment(Qt::AlignHCenter);
    // 将item插入listWidget
    ui->listWidget->addItem(item);

    // 一口气加入多个item
    QStringList list;
    list << "锄禾日当午" << "汗滴禾下土" << "谁知盘中餐" << "粒粒皆辛苦";
    ui->listWidget->addItems(list);

    // treeWidget 树控件的使用
    // 设置水平头
    ui->treeWidget->setHeaderLabels(QStringList()<<"英雄"<<"英雄简介");
    // 创建子树
    QTreeWidgetItem * liitem = new QTreeWidgetItem(QStringList()<< "力量");
    // 加载到顶层
    ui->treeWidget->addTopLevelItem(liitem);

    QTreeWidgetItem * minitem = new QTreeWidgetItem(QStringList()<< "敏捷");
    QTreeWidgetItem * zhiitem = new QTreeWidgetItem(QStringList()<< "智力");

    ui->treeWidget->addTopLevelItem(minitem);
    ui->treeWidget->addTopLevelItem(zhiitem);

    // 追加子树
    QTreeWidgetItem * l1 = new QTreeWidgetItem(QStringList() << "1" << "2");
    liitem->addChild(l1);

    // 表格控件
    ui->tableWidget->resize(400,300);
    // 设置列数
    ui->tableWidget->setColumnCount(3);
    // 设置表头
    ui->tableWidget->setHorizontalHeaderLabels(QStringList()<<"姓名"<<"性别"<<"年龄");
    // 设置行数
    ui->tableWidget->setRowCount(5);
    // 设置正文
    ui->tableWidget->setItem(0,0,new QTableWidgetItem("Q"));

    QStringList nameList;
    nameList << "1" << "2" << "3" << "4" << "5";
    QList<QString> sexList;
    sexList << "1" << "2" << "3" << "4" << "5";
    // 循环方式写
    for(int i=0;i<5;i++){
        int col = 0;
        ui->tableWidget->setItem(i,col++,new QTableWidgetItem(nameList[i]));
        ui->tableWidget->setItem(i,col++,new QTableWidgetItem(sexList[i]));
        // int 转QString
        ui->tableWidget->setItem(i,col,new QTableWidgetItem(QString::number(18)));
    }

    // 栈容器的使用
    // 设置默认定位
    ui->stackedWidget->setCurrentIndex(0);
    // 按钮的链接
    connect(ui->pushButton,&QPushButton::clicked,this,[=](){
        ui->stackedWidget->setCurrentIndex(0);
    });
    connect(ui->pushButton_2,&QPushButton::clicked,this,[=](){
        ui->stackedWidget->setCurrentIndex(1);
    });
    connect(ui->pushButton_3,&QPushButton::clicked,this,[=](){
        ui->stackedWidget->setCurrentIndex(2);
    });

    // 下拉框
    ui->comboBox->addItems(QStringList()<<"奔驰"<<"宝马"<<"奥迪");
    // 点击按钮 选中选项
    connect(ui->pushButton_12,&QPushButton::clicked,this,[=](){
        ui->comboBox->setCurrentIndex(5); // 没有也会进行操作
    });
    connect(ui->pushButton_12,&QPushButton::clicked,this,[=](){
        ui->comboBox->setCurrentText("1"); // 没有就不做操作
    });

    // 利用QLabel 显示图像
    ui->img->setPixmap(QPixmap(":/icon/image/game.png"));
    // 利用QLabel 显示动图
    QMovie * movie = new QMovie(":/icon/image/ajax-loader.gif");
    ui->movie->setMovie(movie);
    // 让动图动起来
    movie->start();
}

MainWindow::~MainWindow()
{
    delete ui;
}

